package com.cipe.cmrs.model;

import java.util.List;

import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.Transient;

import org.hibernate.annotations.Type;

/**
 * <p>
 * Pojo mapping TABLE dbo.Payee
 * </p>
 * <p>
 * Generated at Sat Dec 03 14:39:46 PKT 2011
 * </p>
 * 
 * @author Incepio
 */
@Entity
@Table(name = "Payee")
@SuppressWarnings("serial")
public class Payee extends BaseAuditEntity {

	@Basic
	@Column(name = "accountnumber", length = 25)
	private String					accountNumber;
	@Basic
	@Column(name = "bankaddressline1", length = 100)
	private String					bankAddressLine1;
	@Basic
	@Column(name = "bankaddressline2", length = 100)
	private String					bankAddressLine2;
	@Basic
	@Column(name = "bankcity", length = 50)
	private String					bankCity;
	@Basic
	@Column(name = "bankcode", length = 25)
	private String					bankCode;
	private String					bankcountrycode;
	@Basic
	@Column(name = "bankname", length = 100)
	private String					bankName;
	@Basic
	@Column(name = "bankstate", length = 25)
	private String					bankState;
	@Basic
	@Column(name = "bankzipcode", length = 20)
	private String					bankZipCode;
	@Basic
	@Column(name = "beneficiaryaddressline1", length = 100)
	private String					beneficiaryAddressLine1;
	@Basic
	@Column(name = "beneficiaryaddressline2", length = 100)
	private String					beneficiaryAddressLine2;
	@Basic
	@Column(name = "beneficiarycity", length = 50)
	private String					beneficiaryCity;
	
	private String payeetype;
	/*
	 * @ManyToOne
	 * @JoinColumn(name = "beneficiarycountry") private Country
	 * beneficiaryCountry;
	 */
	@Basic
	@Column(name = "beneficiaryphonenumber", length = 20)
	private String					beneficiaryPhoneNumber;
	@Basic
	@Column(name = "beneficiarystate", length = 25)
	private String					beneficiaryState;
	@Basic
	@Column(name = "beneficiarytname", length = 100)
	private String					beneficiarytName;
	@Basic
	@Column(name = "beneficiaryzipcode", length = 20)
	private String					beneficiaryZipCode;
	@Basic
	@Column(name = "chipscode", length = 25)
	private String					chipsCode;
	@Basic
	@Column(name = "intermediarybank", length = 100)
	private String					intermediaryBank;
	@Basic
	@Column(name = "intermediarybankcode", length = 25)
	private String					intermediaryBankCode;
	@Basic
	@Column(name = "payeeaddress1", length = 100)
	private String					payeeAddress1;
	@Basic
	@Column(name = "payeeaddress2", length = 100)
	private String					payeeAddress2;
	@Basic
	@Column(name = "payeecity", length = 50)
	private String					payeeCity;
	private String					beneficiarycountrycode;
	/**
	 * Attribute country
	 */
    @ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "countryid")
	private Country					payeeCountry;
	@Basic
	@Column(name = "payeeemail", length = 100)
	private String					payeeEmail;
	@Basic
	@Column(name = "payeefax", length = 20)
	private String					payeeFax;
	/**
	 * Attribute payeeName.
	 */
	@Basic
	@Column(name = "payeename", length = 50)
	private String					payeeName;
	@Basic
	@Column(name = "payeephone", length = 20)
	private String					payeePhone;
//	@Basic
//	@Column(name = "payeestate", length = 25)
//	private String					payeeState;
	
    @ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "payeestateid")
	private State payeestate;
	@Basic
	@Column(name = "payeeurl", length = 400)
	private String					payeeUrl;
	@Basic
	@Column(name = "payeezipcode", length = 20)
	private String					payeeZipCode;
	@OneToMany(mappedBy = "payee")
	private List<Paymentrequest>	paymentrequests	= null;
	@Basic
	@Column(name = "specialinstructions", length = 200)
	private String					specialInstructions;
	@Column(name = "inactive")
	@Type(type = "yes_no")
	private Boolean inactive;

	@Transient
	private String submitAction;

	/**
	 * @return the accountNumber
	 */
	public String getAccountNumber() {
		return accountNumber;
	}

	/**
	 * @return the bankAddressLine1
	 */
	public String getBankAddressLine1() {
		return bankAddressLine1;
	}

	/**
	 * @return the bankAddressLine2
	 */
	public String getBankAddressLine2() {
		return bankAddressLine2;
	}

	/**
	 * @return the bankCity
	 */
	public String getBankCity() {
		return bankCity;
	}

	/**
	 * @return the bankCode
	 */
	public String getBankCode() {
		return bankCode;
	}

	public String getBankcountrycode() {
		return bankcountrycode;
	}

	/**
	 * @return the bankName
	 */
	public String getBankName() {
		return bankName;
	}

	/**
	 * @return the bankState
	 */
	public String getBankState() {
		return bankState;
	}

	/**
	 * @return the bankZipCode
	 */
	public String getBankZipCode() {
		return bankZipCode;
	}

	/**
	 * @return the beneficiaryAddressLine1
	 */
	public String getBeneficiaryAddressLine1() {
		return beneficiaryAddressLine1;
	}

	/**
	 * @return the beneficiaryAddressLine2
	 */
	public String getBeneficiaryAddressLine2() {
		return beneficiaryAddressLine2;
	}

	/**
	 * @return the beneficiaryCity
	 */
	public String getBeneficiaryCity() {
		return beneficiaryCity;
	}

	public String getBeneficiarycountrycode() {
		return beneficiarycountrycode;
	}

	/**
	 * @return the beneficiaryPhoneNumber
	 */
	public String getBeneficiaryPhoneNumber() {
		return beneficiaryPhoneNumber;
	}

	/**
	 * @return the beneficiaryState
	 */
	public String getBeneficiaryState() {
		return beneficiaryState;
	}

	/**
	 * @return the beneficiarytName
	 */
	public String getBeneficiarytName() {
		return beneficiarytName;
	}

	/**
	 * @return the beneficiaryZipCode
	 */
	public String getBeneficiaryZipCode() {
		return beneficiaryZipCode;
	}

	/**
	 * @return the chipsCode
	 */
	public String getChipsCode() {
		return chipsCode;
	}

	/**
	 * @return the intermediaryBank
	 */
	public String getIntermediaryBank() {
		return intermediaryBank;
	}

	/**
	 * @return the intermediaryBankCode
	 */
	public String getIntermediaryBankCode() {
		return intermediaryBankCode;
	}

	/*
	 * @ManyToOne
	 * @JoinColumn(name = "payeecountry") private Country beneficiaryCountry;
	 * @ManyToOne
	 * @JoinColumn(name = "payeecountry") private Country bankCountry;
	 */
	/**
	 * @return the payeeAddress1
	 */
	public String getPayeeAddress1() {
		return payeeAddress1;
	}

	/**
	 * @return the payeeAddress2
	 */
	public String getPayeeAddress2() {
		return payeeAddress2;
	}

	/**
	 * @return the payeeCity
	 */
	public String getPayeeCity() {
		return payeeCity;
	}

	/**
	 * @return the payeeCountry
	 */
	public Country getPayeeCountry() {
		return payeeCountry;
	}

	/**
	 * @return the payeeEmail
	 */
	public String getPayeeEmail() {
		return payeeEmail;
	}

	/**
	 * @return the payeeFax
	 */
	public String getPayeeFax() {
		return payeeFax;
	}

	/**
	 * @return payeeName
	 */
	public String getPayeeName() {
		return payeeName;
	}

	/**
	 * @return the payeePhone
	 */
	public String getPayeePhone() {
		return payeePhone;
	}

	/**
	 * @return the payeeUrl
	 */
	public String getPayeeUrl() {
		return payeeUrl;
	}

	/**
	 * @return the payeeZipCode
	 */
	public String getPayeeZipCode() {
		return payeeZipCode;
	}

	/**
	 * Get the list of Paymentrequest
	 */
	public List<Paymentrequest> getPaymentrequests() {
		return this.paymentrequests;
	}

	/**
	 * @return the specialInstructions
	 */
	public String getSpecialInstructions() {
		return specialInstructions;
	}

	/**
	 * @param accountNumber
	 *            the accountNumber to set
	 */
	public void setAccountNumber(String accountNumber) {
		this.accountNumber = accountNumber;
	}

	/**
	 * @param bankAddressLine1
	 *            the bankAddressLine1 to set
	 */
	public void setBankAddressLine1(String bankAddressLine1) {
		this.bankAddressLine1 = bankAddressLine1;
	}

	/**
	 * @param bankAddressLine2
	 *            the bankAddressLine2 to set
	 */
	public void setBankAddressLine2(String bankAddressLine2) {
		this.bankAddressLine2 = bankAddressLine2;
	}

	/**
	 * @param bankCity
	 *            the bankCity to set
	 */
	public void setBankCity(String bankCity) {
		this.bankCity = bankCity;
	}

	/**
	 * @param bankCode
	 *            the bankCode to set
	 */
	public void setBankCode(String bankCode) {
		this.bankCode = bankCode;
	}

	public void setBankcountrycode(String bankcountrycode) {
		this.bankcountrycode = bankcountrycode;
	}

	/**
	 * @param bankName
	 *            the bankName to set
	 */
	public void setBankName(String bankName) {
		this.bankName = bankName;
	}

	/**
	 * @param bankState
	 *            the bankState to set
	 */
	public void setBankState(String bankState) {
		this.bankState = bankState;
	}

	/**
	 * @param bankZipCode
	 *            the bankZipCode to set
	 */
	public void setBankZipCode(String bankZipCode) {
		this.bankZipCode = bankZipCode;
	}

	/**
	 * @param beneficiaryAddressLine1
	 *            the beneficiaryAddressLine1 to set
	 */
	public void setBeneficiaryAddressLine1(String beneficiaryAddressLine1) {
		this.beneficiaryAddressLine1 = beneficiaryAddressLine1;
	}

	/**
	 * @param beneficiaryAddressLine2
	 *            the beneficiaryAddressLine2 to set
	 */
	public void setBeneficiaryAddressLine2(String beneficiaryAddressLine2) {
		this.beneficiaryAddressLine2 = beneficiaryAddressLine2;
	}

	/**
	 * @param beneficiaryCity
	 *            the beneficiaryCity to set
	 */
	public void setBeneficiaryCity(String beneficiaryCity) {
		this.beneficiaryCity = beneficiaryCity;
	}

	public void setBeneficiarycountrycode(String beneficiarycountrycode) {
		this.beneficiarycountrycode = beneficiarycountrycode;
	}

	/**
	 * @param beneficiaryPhoneNumber
	 *            the beneficiaryPhoneNumber to set
	 */
	public void setBeneficiaryPhoneNumber(String beneficiaryPhoneNumber) {
		this.beneficiaryPhoneNumber = beneficiaryPhoneNumber;
	}

	/**
	 * @param beneficiaryState
	 *            the beneficiaryState to set
	 */
	public void setBeneficiaryState(String beneficiaryState) {
		this.beneficiaryState = beneficiaryState;
	}

	/**
	 * @param beneficiarytName
	 *            the beneficiarytName to set
	 */
	public void setBeneficiarytName(String beneficiarytName) {
		this.beneficiarytName = beneficiarytName;
	}

	/**
	 * @param beneficiaryZipCode
	 *            the beneficiaryZipCode to set
	 */
	public void setBeneficiaryZipCode(String beneficiaryZipCode) {
		this.beneficiaryZipCode = beneficiaryZipCode;
	}

	/**
	 * @param chipsCode
	 *            the chipsCode to set
	 */
	public void setChipsCode(String chipsCode) {
		this.chipsCode = chipsCode;
	}

	/**
	 * @param intermediaryBank
	 *            the intermediaryBank to set
	 */
	public void setIntermediaryBank(String intermediaryBank) {
		this.intermediaryBank = intermediaryBank;
	}

	/**
	 * @param intermediaryBankCode
	 *            the intermediaryBankCode to set
	 */
	public void setIntermediaryBankCode(String intermediaryBankCode) {
		this.intermediaryBankCode = intermediaryBankCode;
	}

	/**
	 * @param payeeAddress1
	 *            the payeeAddress1 to set
	 */
	public void setPayeeAddress1(String payeeAddress1) {
		this.payeeAddress1 = payeeAddress1;
	}

	/**
	 * @param payeeAddress2
	 *            the payeeAddress2 to set
	 */
	public void setPayeeAddress2(String payeeAddress2) {
		this.payeeAddress2 = payeeAddress2;
	}

	/**
	 * @param payeeCity
	 *            the payeeCity to set
	 */
	public void setPayeeCity(String payeeCity) {
		this.payeeCity = payeeCity;
	}

	/**
	 * @param payeeCountry
	 *            the payeeCountry to set
	 */
	public void setPayeeCountry(Country payeeCountry) {
		this.payeeCountry = payeeCountry;
	}

	/**
	 * @param payeeEmail
	 *            the payeeEmail to set
	 */
	public void setPayeeEmail(String payeeEmail) {
		this.payeeEmail = payeeEmail;
	}

	/**
	 * @param payeeFax
	 *            the payeeFax to set
	 */
	public void setPayeeFax(String payeeFax) {
		this.payeeFax = payeeFax;
	}

	/**
	 * @param payeeName
	 *            new value for payeeName
	 */
	public void setPayeeName(String payeeName) {
		this.payeeName = payeeName;
	}

	/**
	 * @param payeePhone
	 *            the payeePhone to set
	 */
	public void setPayeePhone(String payeePhone) {
		this.payeePhone = payeePhone;
	}


	/**
	 * @param payeeUrl
	 *            the payeeUrl to set
	 */
	public void setPayeeUrl(String payeeUrl) {
		this.payeeUrl = payeeUrl;
	}

	/**
	 * @param payeeZipCode
	 *            the payeeZipCode to set
	 */
	public void setPayeeZipCode(String payeeZipCode) {
		this.payeeZipCode = payeeZipCode;
	}

	/**
	 * Set the list of Paymentrequest
	 */
	public void setPaymentrequests(List<Paymentrequest> paymentrequests) {
		this.paymentrequests = paymentrequests;
	}

	/**
	 * @param specialInstructions
	 *            the specialInstructions to set
	 */
	public void setSpecialInstructions(String specialInstructions) {
		this.specialInstructions = specialInstructions;
	}

	public String getPayeetype() {
		return payeetype;
	}

	public void setPayeetype(String payeetype) {
		this.payeetype = payeetype;
	}

	public State getPayeestate() {
		return payeestate;
	}

	public void setPayeestate(State payeestate) {
		this.payeestate = payeestate;
	}

	public String getSubmitAction() {
		return submitAction;
	}

	public void setSubmitAction(String submitAction) {
		this.submitAction = submitAction;
	}

	public Boolean getInactive() {
		return inactive;
	}

	public void setInactive(Boolean inactive) {
		this.inactive = inactive;
	}

}